import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:getx_example/get_lazy_put/controller/my_lzay_put_controller.dart';

class MyGetViewPage extends GetView<MyGetLazyPutController> {
  //路由地址
  static const String route = "/MyGetViewPage";
  // 1. GetView 是一个继承自 GetX 的类，它可以帮助我们更方便地获取控制器
  // 2. GetView 的构造函数中需要传入一个控制器，这个控制器可以是任何类型的控制器
  // 3. GetView 的 build 方法中可以直接使用传入的控制器，不需要再通过 Get.find() 来获取
  // 4. GetView 的 build 方法中可以直接使用传入的控制器的方法和属性

  const MyGetViewPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Getx_GetView"), actions: [
        IconButton(
          icon: const Icon(Icons.refresh),
          onPressed: () {
            controller.updateAll();
          },
        )
      ]),
      body: SingleChildScrollView(
          child: Obx(() =>  Column(
        children: [
          Text("int -> ${controller.count}"),
          Text("int -> ${controller.count1}"),
          const Divider(),
          Text("String -> ${controller.audi}"),
          Text("String -> ${controller.audi1}"),
          const Divider(),
          Text("list -> ${controller.list}"),
          Text("list -> ${controller.list1}"),
          const Divider(),
          Text("map -> ${controller.map}"),
          Text("map -> ${controller.map1}"),
          const Divider(),
          Column(
            children: controller.models.map((element) {
              return Text("element -> ${element.name}");
            }).toList(),
          ),
          const Divider(),
          Column(
            children: controller.models1.map((element) {
              return Text("element -> ${element.name}");
            }).toList(),
          ),
         
         
          const Divider(),
          Text("model -> ${controller.model.value.name}"),
          Text("model -> ${controller.model1.value.name}"),
          const Divider(),
          Column(
            children: controller.rxModels.map((element) {
              return Text("element -> ${element.name}");
            }).toList(),
          ),
          const Divider(),
          Column(
            children: controller.rxModels1.map((element) {
              return Text("element -> ${element.name}");
            }).toList(),
          ),
          const Divider(),
          Text("bool -> ${controller.isTrue}"),
          Text("bool -> ${controller.isTrue1}"),
         
          const Divider(),
          ElevatedButton(
            onPressed: () {
              controller.updateAll();
            },
            child: const Text('add'),
          ),
        ],
      ))),
    );
  }
}
